﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using itau.im.entidade;

namespace itau.im.relatorios.entidade
{
    public class EntidadeFactory
    {
        public static RelatorioCurvasSaida getRelatorioCurvasSaida()
        {
            return null;
        }

        public static Curva getCurva(DataRow dataRow)
        {
            Curva retorno = new Curva();

            retorno.CodigoCurva = ConversorDeTipos.ToInt32(dataRow["COD_CURV"]);
            retorno.NomeCurva = ConversorDeTipos.RemoverEspacosEmBranco(dataRow["NOM_CURV"]);
            retorno.CodigoModalidadeCurva = ConversorDeTipos.ToInt32(dataRow["COD_MODA_CURV"]);
            retorno.CodigoTipoCurva = ConversorDeTipos.ToInt32(dataRow["COD_TIPO_CURV"]);
            retorno.CodigoSubMesaOperacao = ConversorDeTipos.ToInt32(dataRow["COD_SUB_MESA_OPER"]);

            return retorno;
        }

        public static Curva getObterCurva(DataRow row)
        {
            Curva item = new Curva();
            item.CodigoCategoriaMercado = ConversorDeTipos.ToInt32(row["COD_CATE_MERC"]);
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.CodigoMesaOperacaoTesouraria = ConversorDeTipos.ToInt32(row["COD_MESA_OPER_TES"]);
            item.CodigoModalidadeCurva = ConversorDeTipos.ToInt32(row["COD_MODA_CURV"]);
            item.CodigoSituacao = ConversorDeTipos.ToInt32(row["COD_SITU"]);
            item.CodigoSubMesaOperacao = ConversorDeTipos.ToInt32(row["COD_SUB_MESA_OPER"]);
            item.CodigoTipoCurvaPadrao = ConversorDeTipos.ToInt32(row["COD_TIPO_CURV_PAD"]);
            item.DataUltimaAlteracao = ConversorDeTipos.ToDateTime(row["DAT_ULTI_ALTE"]);
            item.DescricaoCurva = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_CURV"]);
            item.IndicadorLiberacaoAutomatica = ConversorDeTipos.ToBoolean(row["IND_LIBE_AUTA"]);
            item.IndicadorPermiteVersao = ConversorDeTipos.ToBoolean(row["IND_PMTE_VERS"]);
            item.IndicadorTerceiraCurva = ConversorDeTipos.ToBoolean(row["IND_TRCI_CURV"]);
            item.NomeCurva = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_CURV"]);
            item.NomeInternoCurva = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_INRN_CURV"]);
            item.QuantidadeAnoExtensao = ConversorDeTipos.ToInt32(row["QTD_ANO_EXTE"]);
            item.CodigoTipoCurva = ConversorDeTipos.ToInt32(row["COD_TIPO_CURV"]);
            item.CodigoClassificacao = ConversorDeTipos.ToInt32(row["COD_CLAF_CURV"]);
            return item;
        }

        public static CurvaVigente getCurvaVigente(DataRow row)
        {
            CurvaVigente item = new CurvaVigente();
            item.CodigoCurvaVigente = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.DataInclusao = ConversorDeTipos.ToDateTime(row["DAT_INCU_VIGE"]);
            item.CodigoModeloCalculo = ConversorDeTipos.ToInt32(row["COD_MODE_CALC"]);
            item.CodigoTipoEntradaDado = ConversorDeTipos.ToInt32(row["COD_TIPO_ENTR_DADO"]);
            item.CodigoTipoPrazo = ConversorDeTipos.ToInt32(row["COD_TIPO_PRZ"]);
            item.CodigoTipoPrazoEntrada = ConversorDeTipos.ToInt32(row["COD_TIPO_PRZ_ENTR"]);
            item.CodigoMoeda = ConversorDeTipos.ToInt32(row["COD_MOED"]);
            item.CodigoTipoTaxa = ConversorDeTipos.ToInt32(row["COD_TIPO_TXA"]);
            item.CodigoModeloIntervaloTolerancia = ConversorDeTipos.ToInt32(row["COD_MODE_INTV_TOLE"]);
            item.DataInicioVigencia = ConversorDeTipos.ToDateTime(row["DAT_INIO_CURV_VIGE"]);
            item.CodigoCurvaBasePMT = ConversorDeTipos.ToInt32(row["COD_CURV_BASE_PMT"]);
            item.DataFimVigencia = ConversorDeTipos.ToDateTime(row["DAT_FIM_CURV_VIGE"]);
            item.IndicadorPrimeiroFator1 = ConversorDeTipos.ToBoolean(row["IND_PMRO_FATR_1"]);
            return item;
        }

        public static CurvaSucessora getCurvaSucessora(DataRow row)
        {
            CurvaSucessora item = new CurvaSucessora();
            item.CodigoCurvaSucessora = ConversorDeTipos.ToInt32(row["COD_CURV_SUCE"]);
            return item;
        }

        public static ComposicaoCurva getComposicaoCurva(DataRow row)
        {
            ComposicaoCurva item = new ComposicaoCurva();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.DataInclusaoVigencia = ConversorDeTipos.ToDateTime(row["DAT_INCU_VIGE"]);
            item.FormulaComposicao = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_FORU_CPSC"]);
            return item;
        }

        public static GradeExecucaoCurva getGradeExecucaoCurva(DataRow row)
        {
            GradeExecucaoCurva item = new GradeExecucaoCurva();
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.CodigoTipoExecucaoCurva = ConversorDeTipos.ToInt32(row["COD_TIPO_EXEO_GRD"]);
            item.HoraInicio = ConversorDeTipos.ToDateTimeParseExact(row["HOR_INIO"].ToString(), ConversorDeTipos.MASCARAHORA);
            item.HoraFim = ConversorDeTipos.ToDateTimeParseExact(row["HOR_FIM"].ToString(), ConversorDeTipos.MASCARAHORA);
            item.QuantidadeTempo = ConversorDeTipos.ToInt32(row["QTD_TEMP"]);
            item.CodigoUnidadeTempo = ConversorDeTipos.ToInt32(row["COD_UNID_TEMP"]);
            return item;
        }

        public static RegistroGradeExecucaoCurva getRegistroGradeExecucaoCurva(DataRow row)
        {
            RegistroGradeExecucaoCurva item = new RegistroGradeExecucaoCurva();
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.NumeroExecucao = ConversorDeTipos.ToInt32(row["NUM_EXEO"]);
            item.HoraExecucao = ConversorDeTipos.ToDateTimeParseExact(row["HOR_EXEO"].ToString(), ConversorDeTipos.MASCARAHORA);
            return item;
        }

        public static ItemComposicao getItemComposicaoCurva(DataRow row)
        {
            ItemComposicao item = new ItemComposicao();

            item.CodigoTipoComposicao = ConversorDeTipos.ToInt32(row["COD_TIPO_CPSC"]);
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.OperandoFormula = ConversorDeTipos.RemoverEspacosEmBranco(row["COD_OPRO_FORU_CPSC"]);
            item.DataInclusaoVigencia = ConversorDeTipos.ToDateTime(row["DAT_INCU_VIGE"]);
            item.CodigoCurvaIntegrante = ConversorDeTipos.ToInt32(row["COD_CURV_ITGT"]);
            item.CodigoSerieIntegrante = ConversorDeTipos.ToInt32(row["COD_COTC_SRIE_ITGT"]);
            item.IndicadorCurvaBase = ConversorDeTipos.ToBoolean(row["IND_CURV_BASE"]);
            item.CodigoFamilia = ConversorDeTipos.ToInt32(row["COD_FAMI"]);
            item.CodigoSerie = ConversorDeTipos.ToInt32(row["COD_SRIE"]);
            item.CodigoAtributo = ConversorDeTipos.ToInt32(row["COD_ATBT"]);
            item.CodigoTipoAtributo = ConversorDeTipos.ToInt16(row["COD_TIPO_ATBT"]);
            item.NomeAtributo = ConversorDeTipos.ToString(row["NOM_ATBT"]);
            item.NomeSerie = ConversorDeTipos.ToString(row["NOM_SRIE"]);

            return item;
        }

        public static ImportacaoArquivo getImportacaoArquivo(DataRow row)
        {
            ImportacaoArquivo item = new ImportacaoArquivo();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.DataInclusaoVigencia = ConversorDeTipos.ToDateTime(row["DAT_INCU_VIGE"]);
            item.Sigla = ConversorDeTipos.RemoverEspacosEmBranco(row["SIG_TIPO_ARQU"]);
            item.Diretorio = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_DRTO"]);
            item.NomePlanilha = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_PNLH"]);
            item.NomeArquivo = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_ARQU"]);
            item.IndicadorValidacaoData = ConversorDeTipos.RemoverEspacosEmBranco(row["IND_VLDO_DAT_RFRC"]).ToUpper().Equals("S");
            item.IndicadorValidacaoArquivo = ConversorDeTipos.RemoverEspacosEmBranco(row["IND_VLDO_NOM_ARQU"]).ToUpper().Equals("S");
            return item;
        }

        public static ModeloIntervaloTolerancia getModeloIntervaloTolerancia(DataRow row)
        {
            ModeloIntervaloTolerancia item = new ModeloIntervaloTolerancia();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD_MODE_INTV_TOL"]);
            item.codigoacaoRetensao = ConversorDeTipos.ToInt32(row["COD_ACAO_RETE"]);
            item.codigoTipoIntervaloTolerancia = ConversorDeTipos.ToInt32(row["COD_TIPO_INTV_TOL"]);
            item.descricaoModeloIntervaloTolerancia = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_MODE_INTV_TOL"]);
            item.nomeModeloIntervaloTolerancia = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_MODE_INTV_TOL"]);
            return item;
        }

        public static ModeloIntervaloTolerancia getModeloIntervaloToleranciaParametro(DataRow row)
        {
            ModeloIntervaloTolerancia item = new ModeloIntervaloTolerancia();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD_MODE_INTV_TOL"]);
            item.codigoacaoRetensao = ConversorDeTipos.ToInt32(row["COD_ACAO_RETE"]);
            item.codigoTipoIntervaloTolerancia = ConversorDeTipos.ToInt32(row["COD_TIPO_INTV_TOL"]);
            item.descricaoModeloIntervaloTolerancia = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_MODE_INTV_TOL"]);
            item.nomeModeloIntervaloTolerancia = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_MODE_INTV_TOL"]);
            return item;
        }

        public static ParametroModeloIntervaloTolerancia getParametroModeloIntervaloTolerancia(DataRow row)
        {
            ParametroModeloIntervaloTolerancia item = new ParametroModeloIntervaloTolerancia();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD_MODE_INTV_TOLE"]);
            item.PrazoDiaCurva = ConversorDeTipos.ToInt32(row["PRZ_DIA_CURV"]);
            item.ValorToleranciaInferior = ConversorDeTipos.ToDouble(row["VLR_TOLE_INFE"]);
            item.ValorToleranciaSuperior = ConversorDeTipos.ToDouble(row["VLR_TOLE_SUPI"]);
            return item;
        }

        public static TaxaPontoCurvaVigenteRelatorio getTaxaPontoCurvaVigente(DataRow row)
        {
            TaxaPontoCurvaVigenteRelatorio item = new TaxaPontoCurvaVigenteRelatorio();
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.DataInclusaoVigencia = ConversorDeTipos.ToDateTime(row["DAT_INCU_VIGE"]);
            item.CodigoTipoPontoCurva = ConversorDeTipos.ToInt32(row["COD_TIPO_PONT_CURV"]);
            item.CodigoTipoTaxa = ConversorDeTipos.ToInt32(row["COD_TIPO_TXA"]);
            return item;
        }

        public static TipoCurva getTipoCurva(DataRow dataRow)
        {
            TipoCurva retorno = new TipoCurva();

            retorno.CodigoTipoCurva = ConversorDeTipos.ToInt32(dataRow["COD_TIPO_CURV"]);
            retorno.NomeTipoCurva = ConversorDeTipos.RemoverEspacosEmBranco(dataRow["NOM_TIPO_CURV"]);

            return retorno;
        }

        public static SubMesaOperacao getSubMesaOperacao(DataRow dataRow)
        {
            SubMesaOperacao retorno = new SubMesaOperacao();

            retorno.CodigoSubMesaOperacao = ConversorDeTipos.ToInt32(dataRow["COD_SUB_MESA_OPER"]);
            retorno.NomeSubMesaOperacao = ConversorDeTipos.RemoverEspacosEmBranco(dataRow["NOM_SUB_MESA_OPER"]);

            return retorno;
        }

        public static ModalidadeCurva getModalidadeCurva(DataRow row)
        {
            ModalidadeCurva item = new ModalidadeCurva();

            item.CodigoModalidade = ConversorDeTipos.ToInt32(row["COD_MODA_CURV"]);
            item.NomeModalidade = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_MODA_CURV"]);

            return item;
        }

        public static ClasseProdutoFinanceiro getClasse(DataRow row)
        {
            ClasseProdutoFinanceiro item = new ClasseProdutoFinanceiro();
            item.CodigoClasseProduto = ConversorDeTipos.ToInt32(row["COD_CLAS_PROD"]);
            item.CodigoCorporativo = ConversorDeTipos.RemoverEspacosEmBranco(row["COD_CORO"]);
            item.DescricaoClasse = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_CLAS"]);
            item.NomeClasseProduto = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_CLAS_PROD"]);
            item.IndicadorRegistroAtivo = ConversorDeTipos.ToInt16(row["IND_RGTO_ATIV"]);
            return item;
        }

        public static FamiliaProdutoFinanceiro getFamilia(DataRow row)
        {
            FamiliaProdutoFinanceiro item = new FamiliaProdutoFinanceiro();
            item.CodigoFamiliaProduto = ConversorDeTipos.ToInt32(row["COD_FAMI_PROD"]);
            item.NomeFamiliaProduto = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_FAMI_PROD"]);
            item.CodigoClasseProduto = ConversorDeTipos.ToInt32(row["COD_CLAS_PROD"]);
            item.DescricaoFamilia = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_FAMI"]);
            item.CodigoCorporativoProdutoFinanceiro = ConversorDeTipos.RemoverEspacosEmBranco(row["COD_CORO_PROD_FINN"]);
            item.IndicadorRegistroAtivo = ConversorDeTipos.ToInt16(row["IND_RGTO_ATIV"]);
            return item;
        }

        public static ProdutoFinanceiro getProduto(DataRow row)
        {
            ProdutoFinanceiro item = new ProdutoFinanceiro();
            item.CodigoProdutoFinanceiro = ConversorDeTipos.ToInt32(row["COD_PROD_FINN"]);
            item.CodigoFamiliaProduto = ConversorDeTipos.ToInt32(row["COD_FAMI_PROD"]);
            item.NomeProdutoFinanceiro = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_PROD_FINN"]);
            item.NomeInternoProdutoFinanceiro = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_INRN_PROD_FINN"]);
            item.DescricaoProdutoFinanceiro = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_PROD_FINN"]);
            item.CodigoCorporativoProdutoFinanceiro = ConversorDeTipos.RemoverEspacosEmBranco(row["COD_CORO_PROD_FINN"]);
            item.IndicadorRegistroAtivo = ConversorDeTipos.ToInt16(row["IND_RGTO_ATIV"]);
            return item;
        }

        public static ProdutoFinanceiroAlocacao getProdutoAlocacao(DataRow row)
        {
            ProdutoFinanceiroAlocacao item = new ProdutoFinanceiroAlocacao();
            item.CodigoGrupoParametroAtribuicao = ConversorDeTipos.ToInt32(row["COD_GRUP_PARM_ATRI"]);
            item.CodigoProdutoFinanceiro = ConversorDeTipos.ToInt32(row["COD_PROD_FINN"]);
            item.CodigoProdutoFinanceiroDerivado = ConversorDeTipos.ToInt32(row["COD_PROD_FINN_DRVD"]);
            item.DataFimVigencia = ConversorDeTipos.ToDateTime(row["DAT_FIM_VIGE"]);
            item.DataInicioVigenciaProduto = ConversorDeTipos.ToDateTime(row["DAT_INIO_VIGE_PROD"]);
            return item;
        }

        public static GrupoParametro getGrupoParametro(DataRow linha)
        {
            GrupoParametro item = new GrupoParametro();
            item.CodigoGrupoParametro = ConversorDeTipos.ToInt32(linha["COD_GRUP_PARM_ATRI"]);
            item.NomeGrupoParametro = ConversorDeTipos.RemoverEspacosEmBranco(linha["NOM_GRUP_PARM_ATRI"]);
            item.DescricaoGrupoParametro = ConversorDeTipos.RemoverEspacosEmBranco(linha["DES_GRUP_PARM_ATRI"]);
            return item;
        }

        public static Situacao getSituacao(DataRow row)
        {
            Situacao item = new Situacao();
            item.codigo = ConversorDeTipos.ToInt32(row["COD_SITU"]);
            item.NomeSituacao = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_SITU"]);
            return item;
        }

        public static ProdutoFinanceiroDerivado getProdutoFinanceiroDerivado(DataRow row)
        {
            ProdutoFinanceiroDerivado item = new ProdutoFinanceiroDerivado();
            item.CodigoProdutoFinanceiro = ConversorDeTipos.ToInt32(row["COD_PROD_FINN"]);
            item.CodigoProdutoFinanceiroDerivado = ConversorDeTipos.ToInt32(row["COD_PROD_FINN_DRVD"]);
            item.NomeProdutoFinanceiroDerivado = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_PROD_FINN_DRVD"]);
            item.CodigoProdutoFinanceiroGR = ConversorDeTipos.RemoverEspacosEmBranco(row["COD_PROD_FINN_GR"]);
            item.IndicadorRegistroAtivo = ConversorDeTipos.ToInt16(row["IND_RGTO_ATIV"]);
            item.IndicadorProdutoDerivadoExcessao = ConversorDeTipos.ToInt16(row["IND_PROD_DRVD_EXCE"]);
            return item;
        }

        public static Moeda getMoedaRelatorio(DataRow row)
        {
            Moeda item = new Moeda();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD_MOED"]);
            item.Nome = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_MOED"]);
            item.Descricao = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_MOED"]);
            item.Sigla = ConversorDeTipos.RemoverEspacosEmBranco(row["SIG_MOED"]);
            return item;
        }

        public static FiltroRelatorioCurva getfiltroRelatorioCurvas()
        {
            return new FiltroRelatorioCurva()
            {
                Curva = new List<Curva>(),
                Modalidade = new List<ModalidadeCurva>(),
                SubMesasOperacao = new List<SubMesaOperacao>(),
                TipoCurva = new List<TipoCurva>()
            };
        }

        public static void getObterCurvaRelatorio(DataRow dataRow, RelatorioDadosCurvaSaida relatorio)
        {
            relatorio.NomeInterno = ConversorDeTipos.RemoverEspacosEmBranco(dataRow["NOM_INRN_CURV"]);
            relatorio.NomeCurva = ConversorDeTipos.RemoverEspacosEmBranco(dataRow["NOM_CURV"]);
            relatorio.DescricaoCurva = ConversorDeTipos.RemoverEspacosEmBranco(dataRow["DES_CURV"]);
            relatorio.Indexador = ConversorDeTipos.RemoverEspacosEmBranco(dataRow["COD_CATE_MERC"]);
            relatorio.Situacao = ConversorDeTipos.RemoverEspacosEmBranco(dataRow["COD_SITU"]);
            relatorio.AnosExtensao = ConversorDeTipos.RemoverEspacosEmBranco(dataRow["QTD_ANO_EXTE"]);
            relatorio.Liberacao = ConversorDeTipos.RemoverEspacosEmBranco(dataRow["IND_LIBE_AUTA"]);
            relatorio.Habilitar3Curva = ConversorDeTipos.RemoverEspacosEmBranco(dataRow["IND_TRCI_CURV"]);
            relatorio.TaxaSpread = ConversorDeTipos.RemoverEspacosEmBranco(dataRow["COD_CLAF_CURV"]);
            relatorio.Modalidade = ConversorDeTipos.RemoverEspacosEmBranco(dataRow["COD_MODA_CURV"]);
            relatorio.TipoCurva = ConversorDeTipos.RemoverEspacosEmBranco(dataRow["COD_TIPO_CURV"]);
            relatorio.MesaOrigem = ConversorDeTipos.RemoverEspacosEmBranco(dataRow["COD_SUB_MESA_OPER"]);
        }

        public static void getCurvaVigenteRelatorio(DataRow dataRow, RelatorioDadosCurvaSaida relatorio)
        {
            relatorio.Moeda = ConversorDeTipos.RemoverEspacosEmBranco(dataRow["COD_MOED"]);
            relatorio.DataInicioVigencia = ConversorDeTipos.ToDateTime(dataRow["DAT_INIO_CURV_VIGE"]);
            relatorio.DataFimVigencia = ConversorDeTipos.ToDateTime(dataRow["DAT_FIM_CURV_VIGE"]);
            relatorio.DataInclusao = ConversorDeTipos.ToDateTime(dataRow["DAT_INCU_VIGE"]);
            relatorio.Modelo = ConversorDeTipos.RemoverEspacosEmBranco(dataRow["COD_MODE_CALC"]);
            relatorio.TipoEntrada = ConversorDeTipos.RemoverEspacosEmBranco(dataRow["COD_TIPO_ENTR_DADO"]);
            relatorio.BaseVertice = ConversorDeTipos.RemoverEspacosEmBranco(dataRow["COD_TIPO_PRZ"]);
            relatorio.TipoTaxa = ConversorDeTipos.RemoverEspacosEmBranco(dataRow["COD_TIPO_TXA"]);
            relatorio.CodigoTunelamento = ConversorDeTipos.ToInt32(dataRow["COD_MODE_INTV_TOLE"]);
            relatorio.PrimeiroFatorIgual1 = ConversorDeTipos.RemoverEspacosEmBranco(dataRow["IND_PMRO_FATR_1"]);
            relatorio.CurvaBasePMT = ConversorDeTipos.RemoverEspacosEmBranco(dataRow["COD_CURV_BASE_PMT"]);
            relatorio.Calendario = ConversorDeTipos.RemoverEspacosEmBranco(1);
        }

        public static void getCurvaSucessoraRelatorio(DataRow dataRow, RelatorioDadosCurvaSaida relatorio)
        {
            relatorio.CurvaSucedida = ConversorDeTipos.RemoverEspacosEmBranco(dataRow["COD_CURV_SUCE"]);
        }

        public static void getTunelamentoRelatorio(DataRow dataRow, RelatorioDadosCurvaSaida relatorio)
        {
            relatorio.Tunelamento = ConversorDeTipos.RemoverEspacosEmBranco(dataRow["NOM_MODE_INTV_TOL"]);
        }

        public static TaxaPontoCurvaVigenteRelatorio getTaxaPontoCurvaVigenteRelatorio(DataRow linha)
        {
            TaxaPontoCurvaVigenteRelatorio item = new TaxaPontoCurvaVigenteRelatorio();
            item.CodigoCurva = ConversorDeTipos.ToInt32(linha["COD_CURV"]);
            item.DataInclusaoVigencia = ConversorDeTipos.ToDateTime(linha["DAT_INCU_VIGE"]);
            item.CodigoTipoPontoCurva = ConversorDeTipos.ToInt32(linha["COD_TIPO_PONT_CURV"]);
            item.CodigoTipoTaxa = ConversorDeTipos.ToInt32(linha["COD_TIPO_TXA"]);

            return item;
        }

        public static TaxaPontoCurva getTaxaPontoCurvaRelatorio(DataRow linha)
        {
            TaxaPontoCurva item = new TaxaPontoCurva();
            item.CodigoTipoTaxa = ConversorDeTipos.ToInt32(linha["COD_TIPO_TXA"]);
            item.CodigoTipoPontoCurva = ConversorDeTipos.ToInt32(linha["COD_TIPO_PONT_CURV"]);
            item.NomeTipoTaxa = ConversorDeTipos.RemoverEspacosEmBranco(linha["NOM_TIPO_TXA"]);
            return item;
        }

        public static TipoPrazo getTipoPrazoRelatorio(DataRow linha)
        {
            TipoPrazo item = new TipoPrazo();
            item.Codigo = ConversorDeTipos.ToInt32(linha["COD_TIPO_PRZ"]);
            item.Nome = ConversorDeTipos.RemoverEspacosEmBranco(linha["NOM_TIPO_PRZ"]);
            item.QuantidadeDiasAno = ConversorDeTipos.ToInt32(linha["QTD_DIA_ANO"]);
            item.IndicadorCalculoCurva = ConversorDeTipos.ToInt32(linha["IND_CALC_CURV"]);
            item.IndicadorArquivoImportacao = ConversorDeTipos.ToInt32(linha["IND_ARQU_IMPO"]);
            item.IndicadorCalculoMatrizVolatilidade = ConversorDeTipos.ToInt32(linha["IND_CALC_MATZ_VLTE"]);
            return item;
        }

        public static TipoTaxa getTipoTaxaRelatorio(DataRow linha)
        {
            TipoTaxa item = new TipoTaxa();
            item.Codigo = ConversorDeTipos.ToInt32(linha["COD_TIPO_TXA"]);
            item.Nome = ConversorDeTipos.RemoverEspacosEmBranco(linha["NOM_TIPO_TXA"]);
            return item;
        }

        public static CategoriaMercado getCategoriaMercadoRelatorio(DataRow linha)
        {
            CategoriaMercado item = new CategoriaMercado();
            item.Codigo = ConversorDeTipos.ToInt32(linha["COD_CATE_MERC"]);
            item.Nome = ConversorDeTipos.RemoverEspacosEmBranco(linha["NOM_CATE_MERC"]);
            item.Descricao = ConversorDeTipos.RemoverEspacosEmBranco(linha["DES_CATE_MERC"]);
            return item;
        }

        public static RegraAtribuicaoCurva getRegraAtribuicaoCurva(DataRow linha)
        {
            RegraAtribuicaoCurva item = new RegraAtribuicaoCurva();
            item.CodigoProdutoFinanceiroDerivado = ConversorDeTipos.ToInt32(linha["COD_PROD_DRVD_EXCE"]);
            item.CodigoProdutoFinanceiroExcecao = ConversorDeTipos.ToInt32(linha["COD_PROD_DRVD_EXCE"]);
            item.CodigoRegraAtribuicaoCurva = ConversorDeTipos.ToInt32(linha["COD_REGR_ATRI_CURV"]);
            item.CodigoGrupoParametroAtribuicao = ConversorDeTipos.ToInt32(linha["COD_GRUP_PARM_ATRI"]);
            item.CodigoCurvaPrimeira = ConversorDeTipos.ToInt32(linha["COD_CURV_PMRO"]);
            item.CodigoCurvaTerceira = ConversorDeTipos.ToInt32(linha["COD_CURV_TRCI"]);
            item.CodigoCurvaPrimeiraComCaixa = ConversorDeTipos.ToInt32(linha["COD_CURV_PMRO_CAIX"]);
            item.CodigoCurvaTerceiraComCaixa = ConversorDeTipos.ToInt32(linha["COD_CURV_TRCI_CAIX"]);
            item.CodigoSituacao = ConversorDeTipos.ToInt32(linha["COD_SITU"]);
            item.DataFimVigencia = ConversorDeTipos.ToDateTime(linha["DAT_FIM_VIGE"]);
            item.DataHoraCriacao = ConversorDeTipos.ToDateTime(linha["DAT_HOR_CRIA"]);
            item.DataInicioVigencia = ConversorDeTipos.ToDateTime(linha["DAT_INIO_VIGE"]);
            return item;
        }

        public static ParametroRegra getParametroRegra(DataRow row)
        {
            ParametroRegra item = new ParametroRegra();
            item.CodigoCurvaPrimeira = ConversorDeTipos.ToInt32(row["COD_CURV_PMRO"]);
            item.CodigoCurvaTerceira = ConversorDeTipos.ToInt32(row["COD_CURV_TRCI"]);
            item.CodigoProdutoFinanceiroExcecao = ConversorDeTipos.ToInt32(row["COD_PROD_DRVD_EXCE"]);
            item.NomeParametroAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_PARM_ATRI"]);
            item.CodigoParametroAtribuicao = ConversorDeTipos.ToInt32(row["COD_PARM_ATRI"]);
            item.TextoValorInterno = ConversorDeTipos.RemoverEspacosEmBranco(row["TXT_VLR_INRN"]);
            item.TextoValorInternoFim = ConversorDeTipos.RemoverEspacosEmBranco(row["TXT_VLR_INRN_FIM"]);
            item.TextoValorDominioAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(row["TXT_VLR_DOMN_ATRI"]);
            item.CodigoDominioParametroAtribuicao = ConversorDeTipos.ToInt32(row["COD_DOMN_PARM_ATRI"]);
            return item;
        }

        public static ParametroAtribuicaoGrupoAlocacao getParametroAtribuicaoGrupoAlocacao(DataRow row)
        {
            ParametroAtribuicaoGrupoAlocacao item = new ParametroAtribuicaoGrupoAlocacao();
            item.CodigoGrupoParametroAtribuicao = ConversorDeTipos.ToInt32(row["COD_GRUP_PARM_ATRI"]);
            item.CodigoDominioParametroAtribuicao = ConversorDeTipos.ToInt32(row["COD_DOMN_PARM_ATRI"]);
            item.DataFimVigencia = ConversorDeTipos.ToDateTime(row["DAT_FIM_VIGE"]);
            item.TextoValorAtribuicaoFim = ConversorDeTipos.RemoverEspacosEmBranco(row["TXT_VLR_ATRI_FIM"]);
            item.TextoValorParametroAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(row["TXT_VLR_PARM_ATRI"]);
            item.DataInicioVigenciaGrupo = ConversorDeTipos.ToDateTime(row["DAT_INIO_VIGE_PARM"]);
            item.CodigoParametroAtribuicao = ConversorDeTipos.ToInt32(row["COD_PARM_ATRI"]);
            return item;
        }

        public static ParametroAtribuicao getParametroAtribuicao(DataRow row)
        {
            ParametroAtribuicao item = new ParametroAtribuicao();
            item.CodigoParametroAtribuicao = ConversorDeTipos.ToInt32(row["COD_PARM_ATRI"]);
            item.CodigoDominioParametroAtribuicaoPadrao = ConversorDeTipos.ToInt32(row["COD_DOMN_PARM_PAD"]);
            item.NomeParametroAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_PARM_ATRI"]);
            item.NomeInternoParametroAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_INRN_PARM_ATR"]);
            item.DescricaoParametroAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_PARM_ATRI"]);
            item.CodigoUnidade = ConversorDeTipos.ToInt32(row["COD_UNID"]);
            item.CodigoTipoParametroValor = ConversorDeTipos.ToInt32(row["COD_TIPO_PARM_VLR"]);
            item.IndicadorIntervalo = ConversorDeTipos.ToInt32(row["IND_INTV"]);
            return item;
        }

        public static ParametroAtribuicao getParametroAtribuicao2(DataRow row)
        {
            ParametroAtribuicao item = new ParametroAtribuicao();
            item.CodigoParametroAtribuicao = ConversorDeTipos.ToInt32(row["COD_PARM_ATRI"]);
            item.CodigoDominioParametroAtribuicaoPadrao = ConversorDeTipos.ToInt32(row["COD_DOMN_PARM_PADR"]);
            item.NomeParametroAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_PARM_ATRI"]);
            item.NomeInternoParametroAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_INRN_PARM_ATRI"]);
            item.DescricaoParametroAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_PARM_ATRI"]);
            item.CodigoUnidade = ConversorDeTipos.ToInt32(row["COD_UNID"]);
            item.CodigoTipoParametroValor = ConversorDeTipos.ToInt32(row["COD_TIPO_PARM_VLR"]);
            item.IndicadorIntervalo = ConversorDeTipos.ToInt32(row["IND_INTV"]);
            return item;
        }

        public static Unidade getUnidade(DataRow row)
        {
            Unidade item = new Unidade();
            item.CodigoUnidade = ConversorDeTipos.ToInt32(row["COD_UNID"]);
            item.NomeUnidade = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_UNID"]);
            item.DescricaoFormato = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_FORT"]);
            return item;
        }

        public static TipoParametroValor getTipoParametroValor(DataRow row)
        {
            TipoParametroValor item = new TipoParametroValor();
            item.CodigoTipoParametroValor = ConversorDeTipos.ToInt32(row["COD_TIPO_PARM_VLR"]);
            item.NomeTipoParametroValor = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_TIPO_PARM_VLR"]);
            item.IndicadorPermiteIntervalo = ConversorDeTipos.ToInt32(row["IND_PMTE_INTV"]);
            return item;
        }

        public static DominioParametroAtribuicao getDominioParametroAtribuicao(DataRow row)
        {
            DominioParametroAtribuicao item = new DominioParametroAtribuicao();
            item.CodigoDominioParametroAtribuicao = ConversorDeTipos.ToInt32(row["COD_DOMN_PARM_ATRI"]);
            item.CodigoParametroAtribuicao = ConversorDeTipos.ToInt32(row["COD_PARM_ATRI"]);
            item.TextoValorDominioParametro = ConversorDeTipos.RemoverEspacosEmBranco(row["TXT_VLR_DOMN_PARM"]);
            item.TextoValorDominioAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(row["TXT_VLR_DOMN_ATRI"]);
            return item;
        }

        public static ModeloCalculo getModeloCalculo(DataRow linha)
        {
            ModeloCalculo item = new ModeloCalculo();
            item.Codigo = ConversorDeTipos.ToInt32(linha["COD_MODE_CALC"]);
            item.CodigoTipoIndicador = ConversorDeTipos.ToInt32(linha["COD_TIPO_CPSC"]);
            item.Nome = ConversorDeTipos.RemoverEspacosEmBranco(linha["NOM_MODE_CALC"]);
            item.Indicador = ConversorDeTipos.ToBoolean(linha["IND_MODE_HBLD"]);
            return item;
        }
    }
}
